#ifndef BUREAUCRAT_H_
#define BUREAUCRAT_H_

#include <iosfwd>
#include <boost/shared_ptr.hpp>

class Bureaucrat {
public:
	Bureaucrat();
	virtual ~Bureaucrat();

	void course_dependencies(std::istream&); // load streamed dot file
	void student_profile(std::istream&); // load streamed student profile
	void next_schedule(); // generate next schedule

private:
	boost::shared_ptr<struct BureaucratImpl> pimpl_;
};

#endif
